#pragma once

#include "IInterface.h"

typedef struct SPluginInfo
{
	struct SShortcutKey {
		bool ctrl;
		bool alt;
		bool shift;
		bool win;
		uchar key;
	};

	TCHAR*		 name;
	TCHAR*		 description;
	SShortcutKey shkey;
	uint32		 version;

	struct SPluginInfo* next;
}*PPluginInfo, *const LPPluginInfo;

class IPlugin : public IInterface
{
public:
	virtual BOOL PreTranslateMessage(MSG*) = 0;
	virtual LPPluginInfo GetInfo(uint32& nPluginCount) = 0;

	virtual bool Show(uint32 nIndex = 0, uint32 dwParam1 = 0, uint32 dwParam2 = 0) = 0;
	virtual bool Hide(uint32 nIndex = 0) = 0;
};